﻿using Ewell.Interface.Common.Model.Constant;
using Ewell.Interface.Common.Model.GateWay.Dto.In;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ewell.Interface.Common.Model.GateWay.GateWayUriInfo
{
    public class HcInDubboServe : GateWayUri
    {
        public override string url => "dubbo/cc.ewell.his.in.service.inter.external.HcInDubboServe";
        public GateWayMethod queryHcMedCharge => new QueryHcMedCharge(url);
        //更新医保费用上传标识
        public GateWayMethod updateHcMedChargeUpload => new UpdateHcMedChargeUpload(url);
    }
    
    public class QueryHcMedCharge : GateWayMethod
    {
        public QueryHcMedCharge(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "queryHcMedCharge";

        public override string paramClass => "cc.ewell.his.in.upon.hc.HcMedChargeReq";

        public override DubboParamType paramType => DubboParamType.defaultParam;

        public override Type requestParamType => typeof(UpLoadMedChargeReq);

        public override Type responseParamType => typeof(List<InPatientMedCharegeVO>);
    }

    public class UpdateHcMedChargeUpload : GateWayMethod
    {
        public UpdateHcMedChargeUpload(string baseUrl) : base(baseUrl)
        {
        }

        public override string methodName => "updateHcMedChargeUpload";
         
        public override string paramClass => "cc.ewell.his.in.upon.UpLoadMedChargeReq";
         
        public override DubboParamType paramType => DubboParamType.defaultParam;

        // UpLoadMedChargeReq HcMedChargeReq
        public override Type requestParamType => typeof(UpLoadMedChargeReq);

        public override Type responseParamType => typeof(bool);
    }
}
